package com.foftact.stockpe;

import java.util.Date;
import java.util.List;

/**
 * 股票估值服务接口
 * 定义股票估值相关的业务方法
 */
public interface StockPEService {
    /**
     * 根据证券代码抓取并保存股票估值数据
     * @param securityCode 证券代码
     * @return 处理结果消息
     */
    String fetchAndSaveStockPEData(String securityCode);

    /**
     * 抓取并保存多条股票估值数据
     * @param securityCodes 证券代码列表
     * @return 处理结果消息
     */
    String batchFetchAndSaveStockPEData(List<String> securityCodes);

    /**
     * 根据证券代码和日期范围查询股票估值数据
     * @param securityCode 证券代码
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 股票估值数据列表
     */
    List<StockPE> queryStockPEDataByCodeAndDateRange(String securityCode, Date startDate, Date endDate);

    /**
     * 查询指定证券的最新股票估值数据
     * @param securityCode 证券代码
     * @return 股票估值数据
     */
    StockPE queryLatestStockPEData(String securityCode);

    /**
     * 查询指定证券的最近N条股票估值数据
     * @param securityCode 证券代码
     * @param limit 查询数量限制
     * @return 股票估值数据列表
     */
    List<StockPE> queryRecentStockPEData(String securityCode, int limit);

    /**
     * 删除指定证券的所有股票估值数据
     * @param securityCode 证券代码
     * @return 影响行数
     */
    int deleteStockPEDataByCode(String securityCode);

    /**
     * 清空所有股票估值数据
     * @return 影响行数
     */
    int clearAllStockPEData();

    /**
     * 按周分组统计股票估值数据
     * @param securityCode 证券代码
     * @return 按周分组的数据列表
     */
    List<StockPE> groupDataByWeek(String securityCode);
}